#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>

#define ByteOf(x, y) (((uint8_t *)x)[(y)])

int main(int argc, char *argv[])
{
	uint64_t temp = 200ULL;
	 
	uint64_t *source = &temp;

	 printf("Temp  = %" PRIu64 "\n", temp);
     printf("*Source casting to uint8_t = %" PRIu8 "\n", ((uint8_t *) source)[0]);	  
	//uint64_t *val1 = UINT64_MAX; 
	//printf("----------------\n");
	//printf("abc : %" PRIu64 "\n", *val1);
	printf("ByteOf transformation: %" PRIu8 "\n", ByteOf(source, 0));
	//printf("Val 1 transformation: %hhu\n", ByteOf(val1, 1));

	return 0;
}
